#include <iostream>

using namespace std;

class myStr
{
private:
    char* data;
    int length;

    int* next;
    int* nextVal;

public:
    myStr(const char*); //..
    ~myStr(); //..
    //其他可以考虑的构造函数
    //myStr(const int&);
    //myStr(const myStr&);

    void print(); //打印字符串 ..
    void kmp_next(); //next数组..
    void kmp_nextVal(); //nextval数组 ..
    void printNext(); //输出next数组 ..
    void printNextVal(); //输出nextval数组 ..
    
    friend bool replaceStr(myStr&, const int&, const myStr&, const myStr&);
    friend int kmpMatch(const myStr&, const myStr&);//KMP ..
    friend int simpleMatch(const myStr&, const myStr&);// 简单匹配 ..

};

struct matrixNode //矩阵
{
    int row;
    int col;
    int value;
};


class myMatrix
{
private:
    matrixNode* nodeList;
    int rowNum;
    int colNum;
    int nodeNum;

public:
    myMatrix(const int&, const int&, const int&, const int*); // ..
    ~myMatrix();// ..
    //建议加入的构造函数
    myMatrix(); // ..
    //myMatrix(const myMatrix&);//没看出有啥用 ..

    void printMatrix(); //..
    void FastTransposeSMatrix(myMatrix&); //快速转置..
};
